# -*- coding: utf-8 -*-
module EvaluadosHelper

  def checked?(pregunta, evaluado, opcion)
    rsp = evaluado.respuesta(pregunta)
    rsp.try(:valor) == opcion.valor
  end

  def comentario(pregunta, evaluado)
    rsp = pregunta.respuestas.evaluador(evaluado.usuario_id).evaluado(evaluado.evaluado_id).first 
    rsp.comentario if rsp
  end

  def evaluacion_en_blanco?(evaluado,evaluacion)
    evaluado.usuario.respuestas.por_evaluacion_y_evaluado(evaluacion,evaluado.evaluado).empty?
  end

  def respuesta_id(pregunta, evaluado)
    rsp = pregunta.respuestas.first(:conditions => ['usuario_id = ? AND evaluado_id = ?', evaluado.usuario_id, evaluado.evaluado_id ])
    rsp.id if rsp
  end

  def link_to_agregar_evaluado(usuario, evaluado, evaluacion, tipo)
    link_to_remote 'agregar',
    :method => :get,
    :url   => agregar_usuario_evaluados_path(usuario,
                                             :tipo                => tipo,
                                             :usuario_evaluado_id => evaluado.id,
                                             :evaluacion_id       => evaluacion.id)
  end

  def desempenio_en_palabras(desempenio)
    case desempenio.to_i
    when 0..60
      "Desempeño no satisfactorio"
    when 61..74
      "Desempeño normal / bueno"
    when 75..89
      "Desempeño muy bueno"
    when 90..100
      "Excelente desempeño"      
    end
  end

  def link_to_evaluados(usuario, evaluacion,opts={})
    opts[:texto]||="evaluar"
    imagen= opts[:imagen] ? image_tag(opts[:imagen]) : ''
    link_to imagen+opts[:texto].html_safe, tomar_evaluacion_usuario_evaluados_path(usuario, :evaluacion_id =>  evaluacion)
  end

  def opcion(respuesta)
    opcion = Opcion.find(:first, :conditions => ['pregunta_id = ? AND valor = ?', respuesta.pregunta_id, respuesta.valor])
    opcion.texto if opcion
  end

  def competencia(respuesta)
    pregunta    = respuesta.pregunta
    competencia = nil
    if pregunta
      competencia = pregunta.competencia.nil? ? nil : pregunta.competencia
    end
    competencia
  end

  def pregunta_texto(respuesta)
    pregunta = respuesta.pregunta
    pregunta ? pregunta.texto : nil
  end

  def pp(desempenio = nil)
    desempenio.nil? ?  "-" : "#{number_with_precision(desempenio)} %"
  end

  def desempenio_cuantitativo(desempenios)
    total = 0
    tam   = desempenios.compact.size
    desempenios.each do |desempenio|
      total += desempenio if desempenio
    end
    number_with_precision(total / tam) if tam > 0
  end

  def reverse_type(type)
    case type
    when "subordinado"
      "superior"
    when "superior"
      "subordinado"
    else
      type
    end
  end

  def motivo(plan_accion)
     if plan_accion.clase_id
      if plan_accion.clase=="Evaluacion"
        link_to plan_accion.clase, :controller => usuario_evaluado_path(@usuario, :id => plan_accion.clase_id)
      else
        link_to plan_accion.clase, :controller => plan_accion.clase.pluralize, :action => "show", :id => plan_accion.clase_id
      end
    else
     " Varios"
    end
  end
  
end
